﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using JTLeigh.Commerce.Spencer.Core.Service.Contracts;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Service.Contracts.Runtime.GetProductImageSummaries
{

	/// <summary>
	/// Request data contract for the <see cref="IProductImagesRuntimeService.GetProductImageSummaries"/>
	/// operation.
	/// </summary>
    [DataContract(Name = "GetProductImageSummariesReq", Namespace = "http://schemas.jtleigh.com/Commerce/Spencer/Features/ProductImages/1.0/Runtime/GetProductImageSummaries/")]
    public class GetProductImageSummariesRequest : RequestBase
	{

        /// <summary>
        /// Gets or sets the list of the fully-qualified product identifiers of the products whose 
        /// images are to be retrieved.
        /// </summary>
        /// <value>An <see cref="IList{TEntry}"/> of <see cref="FullyQualifiedProductId"/> objects.</value>
        [DataMember(Name = "ProductIds", IsRequired = true)]
        public IList<FullyQualifiedProductId> ProductIds { get; set; }

        /// <summary>
		/// Gets or sets the well-known view code of the view of the products to retrieve.
		/// </summary>
		/// <value>A well-known view code <see cref="Byte"/>.</value>
        [DataMember(Name = "WellKnownViewCode", IsRequired = true)]
		public byte WellKnownViewCode { get; set; }

		/// <summary>
		/// Gets or sets the well-known size code of the size of the images to retrieve.
		/// </summary>
		/// <value>A well-known size code <see cref="Byte"/>.</value>
		[DataMember(Name = "WellKnownSizeCode", IsRequired = true)]
		public byte WellKnownSizeCode { get; set; }

	}

}
